package com.ddwl.schema.vo.funds;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.time.Instant;

/**
 * 微信支付流水表(OrderWxPay)返回对象
 *
 * @author zach
 * @since 2020-09-24 11:42:01
 */
@Getter
@Setter
@ApiModel(value = "微信支付流水表")
public class OrderWxPayVo {

    @ApiModelProperty(value = "微信支付分配的公众账号ID（企业号corpid即为此appId）")     
    private String appid;

    @ApiModelProperty(value = "微信支付分配的商户号")     
    private String mchId;

    @ApiModelProperty(value = "随机字符串，长度要求在32位以内。")     
    private String nonceStr;

    @ApiModelProperty(value = "订单号")     
    private String outTradeNo;

    @ApiModelProperty(value = "通过签名算法计算得出的签名值")     
    private String sign;

    @ApiModelProperty(value = "默认MD5")     
    private String signType;

    @ApiModelProperty(value = "支付主题")     
    private String body;

    @ApiModelProperty(value = "订单总金额，单位为分，")     
    private Long totalFee;

    @ApiModelProperty(value = "符合ISO 4217标准的三位字母代码，默认人民币：CNY")     
    private String feeType;

    @ApiModelProperty(value = "JSAPI -JSAPI支付NATIVE -Native支付APP -APP支付")     
    private String tradeType;

    @ApiModelProperty(value = "终端ip")     
    private String spbillCreateIp;

    @ApiModelProperty(value = "异步接收微信支付结果通知的回调地址")     
    private String notifyUrl;

    @ApiModelProperty(value = "用户标识")     
    private String openid;

    @ApiModelProperty(value = "所属产品")     
    private String product;

    @ApiModelProperty(value = "支付状态（0创建10提交支付20支付成功30支付失败）")     
    private Integer status;

    @ApiModelProperty(value = "微信生成的预支付会话标识，用于后续接口调用中使用，该值有效期为2小时")     
    private String prepayId;

    @ApiModelProperty(value = "trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。")     
    private String codeUrl;

    @ApiModelProperty(value = "业务结果SUCCESS/FAIL")     
    private String returnCode;

    @ApiModelProperty(value = "当result_code为FAIL时返回错误描述")     
    private String returnMsg;

    @ApiModelProperty(value = "微信支付订单号")     
    private String transactionId;

    @ApiModelProperty(value = "订单过期时间")     
    private Instant expirationTime;
}